
package Framework.Intermediarios;

import Framework.Utilidades.Criterio;
import Framework.Entidades.SituacionFiscal.AgenteSituacionFiscal;
import Framework.Entidades.SituacionFiscal.ImplementacionSituacionFiscal;
import Framework.Utilidades.CriterioCompuesto;
import Framework.Utilidades.CriterioSimple;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class IntermediarioPersistenciaRelacionalSituacionFiscal extends IntermediarioPersistenciaRelacional{

    @Override
    public String ArmarConsultaSQLSelectOID(String oid) {
        
        String select = "SELECT * FROM SituacionFiscal WHERE OIDSituacionFiscal = '"
				+ oid + "'";
		return select;
    }

    @Override
    public String ArmarConsultaSQLSelectCriterio(Criterio criterios) {
       
        String select = "";
		if (criterios instanceof CriterioSimple) {
			CriterioSimple criterioSimple = (CriterioSimple) criterios;
			if (criterioSimple.getValor() == null) {
				select = "SELECT * FROM SituacionFiscal";
			} else {
				select = "SELECT * FROM SituacionFiscal WHERE "
						+ criterioSimple.getAtributo() + " "
						+ criterioSimple.getOperador() + " '"
						+ criterioSimple.getValor() + "'";
			}
			return select;
		} else if (criterios instanceof CriterioCompuesto) {
			CriterioCompuesto criterioCompuesto = (CriterioCompuesto) criterios;
			CriterioSimple criterioSimple1 = (CriterioSimple) criterioCompuesto
					.getCriterioCompuesto().get(0);
			String operador = (String) criterioCompuesto.getCriterioCompuesto()
					.get(1);
			CriterioSimple criterioSimple2 = (CriterioSimple) criterioCompuesto
					.getCriterioCompuesto().get(2);
			select = "SELECT * FROM SituacionFiscal WHERE "
					+ criterioSimple1.getAtributo() + " "
					+ criterioSimple1.getOperador() + " '"
					+ criterioSimple1.getValor() + "' " + operador + " "
					+ criterioSimple2.getAtributo() + " "
					+ criterioSimple2.getOperador() + " '"
					+ criterioSimple2.getValor() + "'";
			return select;
		}
		return select;
        
    }

    @Override
    public String ArmarConsultaSQLInsert(Object objeto) {
        
         AgenteSituacionFiscal agenteSituacionFiscal = (AgenteSituacionFiscal) objeto;
		String insert = "INSERT INTO SituacionFiscal (OIDSituacionFiscal, nombreSitFiscal, nroSitFiscal) VALUES ('"
				+ agenteSituacionFiscal.getOIDSituacionFiscal()
				+ "', '"
				+ agenteSituacionFiscal.getNombreSitFiscal()
				+ "', '"
				+ agenteSituacionFiscal.getNroSitFiscal()+ "')";
		return insert;
        
        
    }

    @Override
    public String ArmarConsultaSQLUpdate(Object objeto) {
        
         AgenteSituacionFiscal agenteSituacionFiscal = (AgenteSituacionFiscal) objeto;
		
                String update = "UPDATE SituacionFiscal SET nombreSitFiscal = '"
				+ agenteSituacionFiscal.getNombreSitFiscal()+ "', nroSitFiscal = '"
				+ agenteSituacionFiscal.getNroSitFiscal()+ "'";
		return update;
        
    }

    @Override
    public String ArmarConsultaSQLDelete(Object objeto) {
       
         AgenteSituacionFiscal agenteSituacionFiscal = (AgenteSituacionFiscal) objeto;
		String delete = "DELETE FROM SituacionFiscal WHERE OIDSituacionFiscal = '"
				+ agenteSituacionFiscal.getOIDSituacionFiscal()+ "'";
		return delete;  
                
    }

    @Override
    public ArrayList BuscarObjetosRelacionados(Criterio criterios) {
       return null;
    }

    @Override
    public Object CompletarObjeto(String oid, String clase) {
        return null;
    }

    @Override
    public ArrayList ConvertirRegistroAObjeto(ResultSet resultSet) {
        try {
			ArrayList agentes = new ArrayList();
			while (resultSet.next()) {
				ImplementacionSituacionFiscal implementacionSituacionFiscal = new ImplementacionSituacionFiscal();
				AgenteSituacionFiscal agenteSituacionFiscal = new AgenteSituacionFiscal();
				agenteSituacionFiscal
						.setImplementacionSituacionFiscal(implementacionSituacionFiscal);
				agenteSituacionFiscal.setOIDSituacionFiscal(resultSet.getString("OIDSituacionFiscal"));
				agenteSituacionFiscal.setEsNuevo(false);
				agenteSituacionFiscal
						.setNombreSitFiscal(resultSet.getString("nombreSitFiscal"));
				agenteSituacionFiscal.setNroSitFiscal(resultSet.getInt("nroSitFiscal"));				
				agentes.add(agenteSituacionFiscal);
			}
			return agentes;
		} catch (SQLException e) {
			Logger.getLogger(
					IntermediarioPersistenciaRelacional.class.getName()).log(
					Level.SEVERE, null, e);
			return null;
		}       
    }

    @Override
    public void GuardarObjetosRelacionados(ArrayList objeto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
}
